load("//bazel:tachyon_cc.bzl", "tachyon_cc_binary", "tachyon_cc_library")

package(default_visibility = ["//visibility:public"])

tachyon_cc_library(
    name = "generator_util",
    srcs = ["generator_util.cc"],
    hdrs = ["generator_util.h"],
    deps = ["//tachyon/base:logging"],
)

tachyon_cc_binary(
    name = "generator",
    srcs = ["generator.cc"],
    data = [
        "msm.cc.tpl",
        "msm.h.tpl",
        "msm_gpu.cc.tpl",
        "msm_gpu.h.tpl",
        "point.cc.tpl",
        "point.h.tpl",
        "point_traits.h.tpl",
        "point_type_traits.h.tpl",
    ],
    deps = [
        ":generator_util",
        "//tachyon/base/console",
        "//tachyon/base/files:file_path_flag",
        "//tachyon/base/flag:flag_parser",
        "//tachyon/base/strings:string_number_conversions",
        "//tachyon/build:cc_writer",
        "@com_google_absl//absl/strings",
    ],
)
